class Point(object):
    id: int  # id
    request: float  # 需求量
    response_time_start: int  # 响应时间开始 min
    response_time_end: int  # 响应时间结束 min
    service_time: int  # 服务时间

    def __init__(
        self, id, request, response_time_start, response_time_end, service_time
    ) -> None:
        self.id = id
        self.request = request
        self.response_time_start = response_time_start
        self.response_time_end = response_time_end
        self.service_time = service_time

    def __str__(self) -> str:
        return (
            "{"
            + ",".join("{}".format(getattr(self, k)) for k in self.__dict__.keys())
            + "}"
        )

    def __repr__(self) -> str:
        return (
            "{"
            + ",".join("{}".format(getattr(self, k)) for k in self.__dict__.keys())
            + "}"
        )


class Library(object):
    id: int
    construct_cost: int  # 建设成本 万元
    operat_cost: int  # 经营成本
    capacity: int  # 容量
    points: list
    residue: float  # 剩余量

    def __init__(self, id, construct_cost, operat_cost, capacity) -> None:
        self.id = id
        self.construct_cost = construct_cost
        self.operat_cost = operat_cost
        self.capacity = capacity
        self.points = []
        self.residue = capacity

    def __str__(self) -> str:
        return (
            "{"
            + ",".join("{}".format(getattr(self, k)) for k in self.__dict__.keys())
            + "}"
        )

    def __repr__(self) -> str:
        return (
            "{"
            + ",".join("{}".format(getattr(self, k)) for k in self.__dict__.keys())
            + "}"
        )
